package com.qc.service;

import java.util.List;

import com.qc.entity.OrderAlipayCallBackEntity;
import com.qc.entity.OrderBillEntity;
import com.qc.entity.OrderCommentEntity;
import com.qc.entity.OrderEntity;
import com.qc.entity.OrderEntityVo;
import com.qc.entity.OrderScheduleEntity;
import com.qc.entity.info.MyOrderInfo;

public interface OrderService {
	
	long addOrder(OrderEntity entity);
	
	OrderEntity getOrderByOrderNumber(String orderNumber);
	
	long updateOrderIsPay(long orderId, int payType);
	
	long addOrderPayLog(OrderAlipayCallBackEntity entity);

	long addOrderBill(OrderBillEntity entity);
	
	List<OrderEntity> getAllMyOrder(MyOrderInfo orderInfo, long userId);
	
	long updateOrderState(int orderState,long orderId);
	
	OrderEntity getBothOrderInfo(OrderEntity entity);
	
	long addOrderSchedule(OrderScheduleEntity entity);
	
	List<OrderScheduleEntity> getScheduleByOrderIdAndDate(OrderScheduleEntity entity);
	
	long cancelOrder(long orderId);
	
	long addOrderComment(OrderCommentEntity entity);
	
	long updateOrderIsComment(long orderId);
	
	List<OrderCommentEntity> getOrderCommentByOrderId(long orderId);
	
	OrderEntity getOrderDetailByOrderId(long orderId);
	
	List<OrderEntity> getSecretaryBySecUserId(long userId);
	
	//获取所有订单
    List<OrderScheduleEntity> getAllOrderByDate(String startTime, String endTime);
    
    //获取所有订单 开始时间 和 结束时间
    List<OrderEntity> getAllOrderTime(String startDate,String endDate);
    
    //修改订单状态
    void updateOrderState(String orderId,String orderState);
    
    void updateOrderSchedulePush(long orderScheduleId);
	
	/****************PC 订单查询**************************/
	//所有订单列表总数
    int getListOrderCount(String bNickName,String mNickName,String orderNumber,String orderState,String isPay);
    
    //所有订单列表
    @SuppressWarnings("rawtypes")
    List getAllOrder(String bNickName,String mNickName,String orderNumber,String orderState,String isPay,int pageNo,int pageSize);
    
    //根据订单id 查询 详细
    OrderEntityVo getOrderId(String orderId);
    
    //根据订单查询行程
    List getOrderScheduleId(String orderId);
}
